package com.hnucm.ktstudy.base

/**
 * 扩展
 * 1.属性扩展
 * 2.类扩展
 */
fun main(){
    val str=""
    str.isEmpty() //斜体表示 扩展函数

    str.firstChar()
}
//1.扩展函数
//给String 类扩展一个函数  获取第一个char
//定义扩展函数语法规则：
// Receiver.扩展函数名 Receiver表示扩展函数是定义在谁上的
fun String.firstChar(): Char {
    //可以在扩展函数中调用原本的方法
    return get(0)
}

//2.扩展属性
//定义扩展属性语法规则
//Receiver.扩展属性名
//getter  ->  get(){ //返回类型 }
//如果定义一个可修改的扩展属性还需要写setter
val String.firstChar:Char
    get() {return get(0)}

var String.lastChar:Char
    get() {
        TODO()
    }
    set(value) {

    }

